window: Unparent popover before unmapping/unrealizing
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 2 Feb 2015 15:13:30 +0000 (16:13 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 5 Feb 2015 14:09:35 +0000 (15:09 +0100)
Otherwise spurious invariants warnings may happen before the popover
is removed from the window.

gtk/gtkwindow.c

index b761118ca687808ea25f6e0a0c38628cfedadb7a..7f9405b08c2516b9c4432785755bb449c09c9531 100644 (file)
@@ -11695,6 +11695,11 @@ _gtk_window_remove_popover (GtkWindow *window,
   if (!data)
     return;
 
+  g_object_ref (popover);
+  gtk_widget_unparent (popover);
+
+  popover_unmap (popover, data);
+
   if (gtk_widget_get_realized (GTK_WIDGET (window)))
     popover_unrealize (popover, data, window);
 
@@ -11704,6 +11709,7 @@ _gtk_window_remove_popover (GtkWindow *window,
   _gtk_container_accessible_remove_child (GTK_CONTAINER_ACCESSIBLE (accessible),
                                           gtk_widget_get_accessible (popover), -1);
   popover_destroy (data);
+  g_object_unref (popover);
 }
 
 void